Efficiency for real-time data processing

ABSTRACT

A computer-implemented method includes receiving a data stream and dividing the data stream into one or more data artefacts for one or more time intervals. The computer-implemented method further includes generating one or more contexts. Each of the one or more contexts are for at least one of the one or more time intervals. The computer-implemented method further includes storing each of the one or more data artefacts in shared storage. The shared storage is accessible for each of the one or more contexts. The computer-implemented method further includes, for each context of the one or more contexts: determining a dependency for the context; monitoring the context for a completion of said dependency; and responsive to the completion, releasing the dependency. The computer-implemented further includes removing those of the one or more data artefacts that do not belong to the dependency for any of the one or more contexts.

BACKGROUND

The present invention relates generally to networks of embedded devicesand in particular to real-time data processing of data streamstransmitted by networks of embedded devices.

The Internet of Things (“IoT”) is the network of physical objects or“things” embedded with electronics, software, sensors, and networkconnectivity, which enables these objects to collect and exchange data.The IoT allows objects to be sensed and controlled remotely acrossexisting network infrastructure, creating opportunities for more directintegration between the physical world and computer-based systems, andresulting in improved efficiency, accuracy and economic benefit. Here,each “thing” is uniquely identifiable through its embedded computingsystem but is also able to interoperate within the existing Internetinfrastructure. These devices collect useful data and then autonomouslyflow the data between other devices. However, as the number of “things”continue to increase, it has become further time consuming to load thedata in real-time data processing, especially when having to accessexternal file storage or databases frequently. Thus, the increase in thenumber of “things” has resulted in a decrease in the efficiency ofreal-time data processing.

SUMMARY

A computer-implemented method includes receiving a data stream. Thecomputer-implemented method further includes dividing the data streaminto one or more data artefacts. Each of the one or more data artefactsare for one or more time intervals. The computer-implemented methodfurther includes generating one or more contexts. Each of the one ormore contexts are for at least one of the one or more time intervals.The computer-implemented method further includes storing each of the oneor more data artefacts in a shared storage. The shared storage isaccessible for each of the one or more contexts. Thecomputer-implemented method further includes, for each context of theone or more contexts: Determining a dependency for the context. Thedependency includes those of the one or more data artefacts that are forthose of the one or more time intervals that the context is for. Thecomputer-implemented method further includes, for each context of theone or more contexts: monitoring the context for a completion of saiddependency. The computer-implemented method further includes, for eachcontext of the one or more contexts, responsive to the completion,releasing the dependency. The computer-implemented further includesremoving those of the one or more data artefacts that do not belong tothe dependency for any of the one or more contexts.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of one embodiment of a computer systemenvironment 100 suitable for operation in accordance with at least oneembodiment of the invention.

FIG. 2 is a flow chart diagram depicting the context dependency programin accordance with at least one embodiment of the invention.

FIG. 3 is a flow chart diagram for a portion of a worked example ofoperational steps in accordance with at least one embodiment of theinvention.

FIG. 4 is a block diagram of a computing apparatus 400 suitable forexecuting the context dependency program in accordance with at least oneembodiment of the invention.

DETAILED DESCRIPTION

Referring now to various embodiments of the invention in more detail,FIG. 1 is a block diagram of one embodiment of a computer systemenvironment suitable for operation in accordance with at least oneembodiment of the invention. Within a computer system 100, a contextdependency program 101 may receive a data stream 102. The data stream102 may include raw data 103 from a network of physical objects or“things” embedded with electronics, software, and sensors, generically“embedded devices.” More specifically, “things” can refer to a widevariety of devices such as heart monitoring implants, biochiptransponders on farm animals, electric clams in coastal water,automobiles with built-in sensors, or transformers in the energyindustry. The context dependency program 101 may further divide the datastream 102 into one or more data artefacts 104 that include processeddata. Each of the one or more data artefacts 104 are for one or moretime intervals.

The context dependency program 101 may further generate one or morecontexts 105. Each of the one or more contexts 105 are for at least oneof the one or more time intervals. Context may be understood as anyinformation that can characterize the situation of an entity. An entitymay be a person, place or object that is considered relevant to theinteraction between a user and an application, including the user andapplications themselves, and by extension, the environment the user andapplications are embedded in (though, it should be understood that thecontext is not intended to include users, people, or other naturallyoccurring phenomena, in themselves). Examples of contexts includelocation, time, proximity, user status, device status and networkcapabilities.

The context dependency program 101 may further store each of the one ormore data artefacts 104 in a shared storage 106. The shared storage 106may be accessible for each of the one or more contexts 105. The contextdependency program 101 may further, for each context 105 of the one ormore contexts 105, determine a dependency 107 for the context 105. Thedependency 107 includes those of the one or more data artefacts 104 thatare for those of the one or more time intervals that the context 105 isfor. More specifically, one or more data artefacts 104 may be used for acontext 105 for multiple time intervals.

The context dependency program 101 may further, for each context 105 ofthe one or more contexts 105, monitor the context 105 for a completionof the dependency 107. Completion of the dependency 107 may exist when aresult 108 is yielded from analysis of the one or more data artefacts104 for a context 105 for a given time interval. Here, the result 108may be the transformation of the one or more data artefacts 104 intoknowledge or high-level information.

For example, knowledge or high-level information may be valuable in ahealth monitoring application, such as a hypertension detection device.In this example, the context 105 would be hypertension and the dataartefacts 104 may include systolic blood pressure (“SBP”), diastolicblood pressure (“DBP”), and heart rate (“HR”). More specifically, for agiven sex, weight, and age, the context 105 for hypertension may beaverage SBP over 5 minutes: >130 mm Hg), average DBP over 5 minutes: >95mm Hg, and average HR over 5 minutes: >90 bpm. Furthermore, there may bea data artefact 104 for “SBP,” “DBP,” and “HR,” respectively. In orderto determine if hypertension exists, the context dependency program 101may store the “SBP,” “DBP,” and “HR” data artefacts 104 in a sharedstorage 106 for the time interval 0 to 5 minutes. The context dependency101 may monitor the context 105 for completion of analysis of the “SBP”data artefact 104, “DBP” data artefact 104, and “HR” data artefact 104.Completion of the context 105 may exist when a result 108 is yieldedfrom the analysis of the dependency 107. Thus, a result of an average of(“SBP:” 142 mm Hg, “DBP:” 97 mm Hg, “HR:” 112 bpm) over the timeinterval 0 to 5 minutes may indicate that hypertension is occurring.

The context dependency program 101 may further, for each context 105 ofthe one or more contexts 105, responsive to the completion, release thedependency 107. The context dependency program 101 may further removethose of the one or more data artefacts 104 that do not belong to thedependency 107 for any of the one or more contexts 105. Here, once thedependency 107 is released, the context dependency program 101 hasdetermined that one or more data artefacts 104 stored in the sharedstorage 106 are no longer needed for analysis by the one or morecontexts 105 for subsequent time intervals. In order to increase theefficiency of the real-time data processing for the remaining one ormore contexts 105, the one or more data artefacts 104 that are no longerdependent by the one or more contexts 105 may be removed from the sharedstorage 106 by the context dependency program 101.

FIG. 2 is a flow chart diagram depicting the context dependency programin accordance with at least one embodiment of the invention. Accordingto the depicted embodiment, at step 200, the context dependency program101 may receive a data stream 102. The data stream 102 may include rawdata 103 from one or more embedded devices. The context dependencyprogram 101 may receive a data stream 102 from one or more remotelylocated embedded devices by any generally known messaging protocols,including, but not limited to MQTT, Advanced Messaging Queuing Protocol,IETF Constrained Application Protocol, and XMPP.

For example, the data stream 102 may be generated by a wireless sensornetwork (WSN) located within an electrical transformer. A WSN includesspatially distributed autonomous sensors which monitor physical orenvironmental conditions, such as temperature, sound, and pressure. TheWSN is built of “nodes,” where each node is connected to one or moresensors. Typically, each sensor network node has several parts,including a radio transceiver with an internal antenna or connection toan external antenna, a microcontroller, an electronic circuit forinterfacing with the sensors, and an energy source (e.g. a battery orembedded form of energy harvesting). In many applications, a WSN maycommunicate with a Local Area Network (LAN) or Wide Area Network (WAN)through a gateway, which acts as a bridge between the WSN and anothernetwork. More specifically, the context dependency program 101 may existin a cloud-based, virtual, or distributed environment or a remoteenvironment on defined server hardware, or, more generally, the contextdependency program 101 may exist in any type of environment suitable fordata streaming.

At step 201, the context dependency program 101 may divide the datastream 102 into one or more data artefacts 104. The one or more dataartefacts 104 may include processed data. Previously, at step 200, thecontext dependency program 101 may receive raw data 103 lacking anyorganization or order. Since streaming data is an analytic computingplatform that is focused on speed, applications such as the contextdependency program 101 require a continuous stream of often unstructureddata to be processed. However, at step 201, the context dependencyprogram may 101 may clean or process the unstructured raw data 103 intostructured data in the form of one or more data artefacts 104. Here,each of the one or more data artefacts 104 may include data transmittedby an individual sensor in a device, a group of sensors in a network ofdevices, or more generally by one or more devices by any knowntransmission methods. The data artefacts may be formed based on apredetermined data storage capacity or a delineated time period.Furthermore, each of the one or more data artefacts 104 may be utilizedfor at least one or more time intervals.

At step 202, the context dependency program 101 may generate one or morecontexts 105. Each of the one or more contexts 105 may be utilized forat least one of the one or more time intervals. Context may be definedas any information that can be used to characterize the situation of anentity, such as a person, place or object. In one scenario, the contextdependency program 101 may generate one or more contexts 105 for anelectrical transformer to determine an “average value of load.” Here,the context dependency program 101 may generate a context for “averagevalue of load” for one or more 5 minute time intervals. For example, thecontext dependency program 101 may generate a context 105 for “averagevalue of load” for time 0 to 5 minutes. The context dependency program101 may further generate a context 105 for “average value of load” fortime 5 to 10 minutes. The context dependency program 101 may furthergenerate a context 105 for “average value of load” for time 10 to 15minutes.

At step 203, the context dependency program 101 may store each of theone or more data artefacts 104 in a shared storage 106. The sharedstorage 106 may be accessed by a single or multiple processors. Theshared storage 106 may be in the form of distributed shared memory,where a distributed memory system consists of multiple independentprocessing nodes with local memory modules connected by a generalinterconnection network. More specifically, the shared storage 106 maybe a cloud-based, virtual, or distributed environment or a remoteenvironment on defined server hardware.

At step 204, for each context 105 of the one or more contexts 105, thecontext dependency program 101 may determine a dependency 107 for thecontext 105. More specifically, the dependency 107 may include those ofthe one or more data artefacts 104 that are for those of the one or moretime intervals that the context 105 is for. At step 205, for eachcontext 105 of the one or more contexts 105, the context dependencyprogram 101 may monitor the context 105 for a completion of thedependency 107. In some embodiments, analysis of the dependency 107 maybe performed by a general purpose analytics engine. In otherembodiments, analysis of the dependency 107 may be performed by ananalytics engine that operates on a model tailored to analyzingcontexts, such as IBM® Watson®. Completion of the dependency 107 mayexist when a result 108 is yielded from analysis of the one or more dataartefacts 104 for a context 105 for a given time interval. Here, theresult 108 may be the transformation of the one or more data artefacts104 into knowledge or high-level information.

High-level information may be recognized as an understanding and abilityto make use of raw data 103 to answer questions, solve problems, andmake decisions. For example, payroll data may be coupled with other costdata, sales data, and consumer data to produce information about whichproducts are most profitable. This collection of raw data may then beprocessed into reports that facilitate management decisions. In anotherexample, high-level information may be the collection of raw sensor datawhich then may be processed to determine whether the average value ofload for a transformer exceeds 2,000 KVA (kilovolt-ampere, a unit ofapparent power) within a 5 minute time interval.

Upon completion of analysis of the dependency 107, the contextdependency program 101 may execute a real-time action trigger based onthe result 108 yielded from analyzing the one or more data artefacts 104for a context 105. For example, a real-time action trigger may be apre-built action, such as displaying text (e.g. a push-up notificationor SMS message) to a device, such as a desktop computer or mobiledevice. In another example, a real-time action trigger may be real-timeintegration of the result 108 within the device for which the analysiswas performed for (e.g. a transformer in the energy industry). In yetanother example, a real-time action trigger may be real-timevisualization of the result 108.

At step 206, for each context 105 of the one or more contexts 105, thecontext dependency program 101 may release the dependency 107. Thecontext dependency program 101 may release the dependency 107 when adata artefact 104 is no longer needed to be analyzed for a context 105for one or more time intervals. At step 207, the context dependencyprogram 101 may remove those of the one or more data artefacts 104 thatdo not belong to the dependency 107 for any of the one or more contexts105. Here, the one or more data artefacts 104 may be removed by erasingor deleting memory from the shared storage 106.

FIG. 3 is a flow chart diagram for a portion of a worked example ofoperational steps in accordance with at least one embodiment of theinvention. In FIG. 3, the dependency 107 of one or more data artefacts104 for those of the one or more time intervals that the context 105 isfor can be seen. For example, each cylinder may represent a dataartefact 104 consisting of data transmitted from sensors locatedthroughout an electrical transformer. Furthermore, each context310,320,330, and 340 may be for a given time interval.

In this example, the first context 310 may be “the average value of loadexceeds 2,200 KVA” for time interval 0 to 5 minutes, the second context320 may be “the average value of load exceeds 2,000 KVA” for timeinterval 5 to 10 minutes, the third context 330 may be “the averagevalue of load exceeds 1,800 KVA” for time interval 10 minutes to 15minutes, the fourth context 340 may be “the average value of loadexceeds 1,700 KVA” for time interval 15 to 20 minutes.

For the first context 310, the context dependency program 101 maydetermine a dependency 107 for the context 310 consisting of the dataartefacts 311-315. The context dependency program 101 may furthermonitor the first context 310 for completion of analysis of the dataartefacts 311-315. Here, completion of the first context 310 may yield aresult 108 in the form of an average value of load of 2,150 KVA for timeinterval 0 to 5 minutes. Since data artefacts 311-314 are only dependentfor the first context 310, the context dependency program 101 mayrelease the dependency 107 of data artefacts 311-314 for the firstcontext 310 upon completion of analyzing the first context 310. Thecontext dependency program 101 may further remove the data artefacts311-314 from the shared storage 106. However, since the second context320 is dependent on the data artefact 315, the context dependencyprogram 101 may not release the dependency 107 of data artefact 315.

For the second context 320, the context dependency program 101 maydetermine a dependency 107 for the context 320 consisting of dataartefacts 315 and 321-323. The context dependency program 101 mayfurther monitor the second context 320 for completion of analysis ofdata artefacts 315 and 321-323. Here, completion of the second context320 may yield a result 108 in the form of an average value of load of2,050 KVA for time interval 5 to 10 minutes. Since the data artefact 321is only dependent for the second context 320, the context dependencyprogram 101 may release the dependency 107 of the data artefact 321 forthe second context 320 upon completion of analyzing the second context320. The context dependency program 101 may further remove the dataartefacts 321 from the shared storage 106.

However, since the third context 330 is dependent on the data artefact322 and the fourth context 340 is dependent on the data artefact 323,the context dependency program 101 may not release the dependency 107 ofthe data artefact 322 for the third context 330 and the dependency 107of the data artefact 323 for the fourth context 340. Thus, only uponcompletion of analysis of the data artefacts 322 and 331-334 for thethird context 330 for time interval 10 to 15 minutes may the dependency107 of data artefact 322 be released and subsequently removed from theshared storage 106. Likewise, only upon completion of analysis of thedata artefacts 323 and 341 for the fourth context 340 for time interval15 to 20 minutes may the dependency 107 of the data artefact 323 bereleased and subsequently removed from the shared storage 106.

FIG. 4 is a block diagram depicting components of a computer 400suitable for executing the context dependency program 101. FIG. 4displays the computer 400, the one or more processor(s) 404 (includingone or more computer processors), the communications fabric 402, thememory 406, the RAM 416, the cache 418, the persistent storage 408, thecommunications unit 412, the I/O interfaces 414, the display 422, andthe external devices 420. It should be appreciated that FIG. 4 providesonly an illustration of one embodiment and does not imply anylimitations with regard to the environments in which differentembodiments may be implemented. Many modifications to the depictedenvironment may be made.

As depicted, the computer 400 operates over a communications fabric 402,which provides communications between the computer processor(s) 404,memory 406, persistent storage 408, communications unit 412, andinput/output (I/O) interface(s) 414. The communications fabric 402 maybe implemented with any architecture suitable for passing data orcontrol information between the processors 404 (e.g. microprocessors,communications processors, and network processors), the memory 406, theexternal devices 420, and any other hardware components within a system.For example, the communications fabric 402 may be implemented with oneor more buses.

The memory 406 and persistent storage 408 are computer readable storagemedia. In the depicted embodiment, the memory 406 comprises a randomaccess memory (RAM) 416 and a cache 418. In general, the memory 406 maycomprise any suitable volatile or non-volatile one or more computerreadable storage media.

Program instructions for the context dependency program 101 may bestored in the persistent storage 408, or more generally, any computerreadable storage media, for execution by one or more of the respectivecomputer processors 404 via one or more memories of the memory 406. Thepersistent storage 408 may be a magnetic hard disk drive, a solid statedisk drive, a semiconductor storage device, read-only memory (ROM),electronically erasable programmable read-only memory (EEPROM), flashmemory, or any other computer readable storage media that is capable ofstoring program instructions or digital information.

The media used by the persistent storage 408 may also be removable. Forexample, a removable hard drive may be used for persistent storage 408.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer readable storage medium that is also part of the persistentstorage 408.

The communications unit 412, in these examples, provides forcommunications with other data processing systems or devices. In theseexamples, the communications unit 412 may comprise one or more networkinterface cards. The communications unit 412 may provide communicationsthrough the use of either or both physical and wireless communicationslinks. In the context of some embodiments of the present invention, thesource of the source of the various input data may be physically remoteto the computer 400 such that the input data may be received and theoutput similarly transmitted via the communications unit 412.

The I/O interface(s) 414 allow for input and output of data with otherdevices that may operate in conjunction with the computer 400. Forexample, the I/O interface 414 may provide a connection to the externaldevices 420, which may be as a keyboard, keypad, a touch screen, orother suitable input devices. External devices 420 may also includeportable computer readable storage media, for example thumb drives,portable optical or magnetic disks, and memory cards. Software and dataused to practice embodiments of the present invention may be stored onsuch portable computer readable storage media and may be loaded onto thepersistent storage 408 via the I/O interface(s) 414. The I/Ointerface(s) 414 may similarly connect to a display 422. The display 422provides a mechanism to display data to a user and may be, for example,a computer monitor.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a readable storage medium that can direct acomputer, a programmable data processing apparatus, and/or other devicesto function in a particular manner, such that the computer readablestorage medium having instructions stored therein comprises an articleof manufacture including instructions which implement aspects of thefunction/act specified in the flowchart and/or block diagram block orblocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof computer program instructions, which comprises one or more executableinstructions for implementing the specified logical function(s). In somealternative implementations, the functions noted in the block may occurout of the order noted in the figures. For example, two blocks shown insuccession may, in fact, be executed substantially concurrently, or theblocks may sometimes be executed in the reverse order, depending uponthe functionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

What is claimed is:
 1. A computer-implemented method for real-time dataprocessing, comprising: determining, by one or more processors, a firstdependency for a first context included in a plurality of contexts,wherein the first dependency comprises a first set of data artifactsstored in storage for determining whether a first average value for afirst predetermined time interval exceeds a first predeterminedthreshold level for a first state of a computing device; processing, byone or more processors, the first set of data artifacts stored in thestorage to generate the first average value for the first predeterminedtime interval for the first state of the computing device; determining,by one or more processors, a second dependency for a second context inthe plurality of contexts, wherein said second dependency comprises atleast a first portion of the first set of data artifacts stored in thestorage for determining whether a second average value for a secondpredetermined time interval exceeds a second predetermined thresholdlevel for a second state of the computing device; and removing, by oneor more processors, a second portion of data artifacts included in thefirst set of data artifacts from the storage that are not associatedwith the second dependency for the second context.
 2. Thecomputer-implemented method of claim 1, further comprising: processing,by one or more processors, in real-time, a data stream of unstructureddata received from a wireless sensor network of the computing deviceinto a plurality of data artifacts based, at least in part, on: (i) oneor more predetermined time intervals and (ii) a predetermined datastorage capacity.
 3. The computer-implemented method of claim 1, whereinprocessing the first set of data artifacts stored in the storage togenerate the first average value for the first predetermined timeinterval for the first state of the computing device further includes:executing, by one or more processors, a real-time action trigger.
 4. Thecomputer-implemented method of claim 3, wherein executing the real-timeaction trigger includes: generating, by one or more processors, a pushnotification.
 5. The computer-implemented method of claim 3, whereinexecuting the real-time action trigger includes: integrating, by one ormore processors, the first average value with the computing device. 6.The computer-implemented method of claim 1, wherein removing the secondportion of data artifacts included in the first set of data artifactsfrom the storage is based, at least in part, on: releasing, by one ormore processors, a dependency associated with the second portion of dataartifacts included in the first set of data artifacts.
 7. Thecomputer-implemented method of claim 1, wherein the storage is adistributed shared storage system.
 8. A computer program product, thecomputer program product comprising one or more computer readablestorage media and program instructions stored on the one or morecomputer readable storage media, the program instructions comprisinginstructions to: determine a first dependency for a first contextincluded in a plurality of contexts, wherein the first dependencycomprises a first set of data artifacts stored in storage fordetermining whether a first average value for a first predetermined timeinterval exceeds a first predetermined threshold level for a first stateof a computing device; process the first set of data artifacts stored inthe storage to generate the first average value for the firstpredetermined time interval for the first state of the computing device;determine a second dependency for a second context in the plurality ofcontexts, wherein said second dependency comprises at least a firstportion of the first set of data artifacts stored in the storage fordetermining whether a second average value for a second predeterminedtime interval exceeds a second predetermined threshold level for asecond state of the computing device; and remove a second portion ofdata artifacts included in the first set of data artifacts from thestorage that are not associated with the second dependency for thesecond context.
 9. The computer program product of claim 8, furthercomprising instructions to: process, in real-time, a data stream ofunstructured data received from a wireless sensor network of thecomputing device into a plurality of data artifacts based, at least inpart, on: (i) one or more predetermined time intervals and (ii) apredetermined data storage capacity.
 10. The computer program product ofclaim 8, wherein the instructions to process the first set of dataartifacts stored in the storage to generate the first average value forthe first predetermined time interval for the first state of thecomputing device further includes instructions to: execute a real-timeaction trigger.
 11. The computer program product of claim 10, whereinthe instructions to execute the real-time action trigger includesinstructions to: generate a push notification.
 12. The computer programproduct of claim 10, wherein the instructions to execute the real-timeaction trigger includes instructions to: integrate the first averagevalue with the computing device.
 13. The computer program product ofclaim 8, wherein the instructions to remove the second portion of dataartifacts included in the first set of data artifacts from the storageis based, at least in part, on instructions to: release a dependencyassociated with the second portion of data artifacts included in thefirst set of data artifacts.
 14. The computer program product of claim8, wherein the storage is a distributed shared storage system.
 15. Acomputer system, the computer system comprising: one or more computerprocessors; one or more computer readable storage media; computerprogram instructions; the computer program instructions being stored onthe one or more computer readable storage media; the computer programinstructions comprising instructions to: determine a first dependencyfor a first context included in a plurality of contexts, wherein thefirst dependency comprises a first set of data artifacts stored instorage for determining whether a first average value for a firstpredetermined time interval exceeds a first predetermined thresholdlevel for a first state of a computing device; process the first set ofdata artifacts stored in the storage to generate the first average valuefor the first predetermined time interval for the first state of thecomputing device; determine a second dependency for a second context inthe plurality of contexts, wherein said second dependency comprises atleast a first portion of the first set of data artifacts stored in thestorage for determining whether a second average value for a secondpredetermined time interval exceeds a second predetermined thresholdlevel for a second state of the computing device; and remove a secondportion of data artifacts included in the first set of data artifactsfrom the storage that are not associated with the second dependency forthe second context.
 16. The computer system of claim 15, furthercomprising instructions to: process, in real-time, a data stream ofunstructured data received from a wireless sensor network of thecomputing device into a plurality of data artifacts based, at least inpart, on: (i) one or more predetermined time intervals and (ii) apredetermined data storage capacity.
 17. The computer system of claim15, wherein the instructions to process the first set of data artifactsstored in the storage to generate the first average value for the firstpredetermined time interval for the first state of the computing devicefurther includes instructions to: execute a real-time action trigger.18. The computer system of claim 17, wherein the instructions to executethe real-time action trigger includes at least one of: (i) aninstruction to generate a push notification and (ii) an instruction tointegrate the first average value with the computing device.
 19. Thecomputer system of claim 15, wherein the instructions to remove thesecond portion of data artifacts included in the first set of dataartifacts from the storage is based, at least in part, on instructionsto: release a dependency associated with the second portion of dataartifacts included in the first set of data artifacts.
 20. The computersystem of claim 15, wherein the storage is a distributed shared storagesystem.